// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const openid = wxContext.OPENID
  
  // 获取传入的用户信息
  const { userInfo } = event
  
  try {
    // 查询是否已存在该用户
    const userResult = await db.collection('users').where({
      _openid: openid
    }).get()
    
    if (userResult.data.length > 0) {
      // 用户已存在，返回用户信息
      return {
        success: true,
        message: '用户已存在',
        data: userResult.data[0]
      }
    }
    
    // 用户不存在，创建新用户
    const result = await db.collection('users').add({
      data: {
        ...userInfo,
        _openid: openid,
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      }
    })
    
    // 创建用户统计数据
    await db.collection('user_stats').add({
      data: {
        _openid: openid,
        works: 0,
        collections: 0,
        likes: 0,
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      }
    })
    
    // 查询创建的用户信息
    const newUser = await db.collection('users').doc(result._id).get()
    
    return {
      success: true,
      message: '注册成功',
      data: newUser.data
    }
  } catch (err) {
    return {
      success: false,
      message: '注册失败',
      error: err
    }
  }
} 